package com.windaka.suizhi.annotation;

import com.windaka.suizhi.aspect.RenderAspect;

import java.lang.annotation.*;


/**
 * <p><strong>自动捕捉和输出日志</strong></p>
 * <p>
 * 减少try catch代码 同时输出规范化日志 <br>
 * 默认执行成功不打印param 执行失败打印param <br>
 * </p>
 * <li>
 * <p>
 *     <strong>示例1: @Render</strong> <br>
 *     结果: 执行成功打印执行时间 执行失败打印参数 <br>
 * </p>
 * </li>
 * <li>
 * <p>
 *     <strong>示例2: @Render(execTime = false, logSuccessParam = true)</strong> <br>
 *     结果: 不打印执行时间 执行成功时打印执行参数 <br>
 * </p>
 * </li>
 * @author wzk
 * @see RenderAspect
 * @since 14:36 2021/8/13
 **/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Render {
    /**
     * 是否开启 执行时间
     */
    boolean execTime() default true;

    /**
     * 是否打印 Success param
     */
    boolean logSuccessParam() default false;

    /**
     * 是否打印 Error param
     */
    boolean logErrorParam() default true;

}
